const path = require('path')
const hasha = require('hasha')
const generateScopedName = (name, filename) => {
  console.log('generateScopedName', name, filename);
  const hash = hasha(filename + name, { algorithm: 'md5' });
  let basename = ''
  if (filename.endsWith('.css')) {
    basename = path.basename(filename, '.css');
  } else {
    basename = path.basename(filename, '.less');
  }
  return `${basename}-${name}-${hash.slice(0, 5)}`;
};
console.log(path.resolve(__dirname, "src"));
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
      // false : 默认，不对当前的 JS 处理做 ployfill 的填充
      // usage: 依据用户源代码当中使用的新语法做 ployfill 填充（没有使用的不填充），默认使用的是 corejs 2版本，安装的是 3 版本的，所以需要 corejs: 3 指明
      // entry: 依据我们当前筛选出来的浏览器进行 ployfill 填充
        useBuiltIns: 'usage',
        corejs: 3
      }
    ],
    [
      '@babel/preset-react' // 配置 react 预设
    ]
  ],
  plugins: [
    [
      'react-css-modules',
      {
        context: path.join(__dirname, 'src'),
        exclude: 'node_modules',
        filetypes: {
          '.less': {
            syntax: 'postcss-less'
          },
        },
        generateScopedName: generateScopedName,
      }
    ]
  ]
}
